home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-06-05 | 697 b | 27 lines | [MATF/MATL] |
- function A = house2(A,show)
- % A = house2(A,show)
- % To reduce a symmetric matrix to tridigonal form.
- % Householder`s method is employed.
- % A is an n x n symmetric matrix, input.
- % A is the tridiagonal matrix, output.
- if nargin==1, show = 0; end
- [n,n] = size(A);
- for k = 2:n-1
- U = A(:,k-1);
- U(1:k-1) = zeros(k-1,1);
- U = U/norm(U);
- if U(k) < 0, U = -U; end
- U(k) = U(k) + 1;
- beta = -U(k); % beta is -(norm(U)^2)/2
- V = A*U/beta;
- gamma = V'*U/(2*beta);
- V = V + gamma*U;
- A = A + U*V' + V*U';
- A(k-1,k+1:n) = zeros(1,n-k);
- if show==1,
- home, clc
- disp(''),disp(['Householder similarity transformation No. ',...
- int2str(k-1)]),disp(''),disp(A),pause(1);
- end
- end
-